package com.pe.pgn.clubpgn.domain;
 
import java.util.Calendar;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;

import org.hibernate.annotations.Type;
import org.springframework.format.annotation.DateTimeFormat;

@Entity
@Table(name = "clpr_flota_vehiculo") 
public class ClprFlotaVehiculo extends CamposAuditoria {

	/** 
	 * 
	 */
	private static final long serialVersionUID = 2431117906001651502L;
	private Long id;
	private ClpdFlota clpdFlota;
	private String dePlaca;
	private ClpbTarjetaEmpresa clpbTarjetaEmpresa;
	private Calendar daFechaInscripcion;
	private boolean stFlotaVehiculo;
	private String fechaInscripcion;
	private String deTarjetaEmpresa;
	private Long idTarjetaEmpresa;
	

	@Id
    @Column(name="id")
    @SequenceGenerator(name="seqflotavehiculo", sequenceName="seq_flota_vehiculo")
    @GeneratedValue(generator="seqflotavehiculo")
	public Long getId() {
		return id;
	}

	@ManyToOne(targetEntity = ClpdFlota.class)
    @JoinColumn(name="co_flota", nullable = false)
	public ClpdFlota getClpdFlota() {
		return clpdFlota;
	}

	
	@ManyToOne(targetEntity = ClpbTarjetaEmpresa.class)
    @JoinColumn(name="co_tarjeta_empresa", nullable = false)	
	public ClpbTarjetaEmpresa getClpbTarjetaEmpresa() {
		return clpbTarjetaEmpresa;
	}

	@Column(name = "de_placa", nullable = false)
	public String getDePlaca() {
		return dePlaca;
	}

//	@Column(name = "co_tarjeta_empresa", nullable = false)
//	public String getCoTarjetaEmpresa() {
//		return coTarjetaEmpresa;
//	}


    @Column(name = "da_fecha_inscripcion", updatable = false)
    @Temporal(TemporalType.TIMESTAMP)
    @DateTimeFormat(style = "S-")
	public Calendar getDaFechaInscripcion() {
		return daFechaInscripcion;
	}

    @Column(name = "st_flota_vehiculo", nullable = false)
	@Type(type = "yes_no") 
	public boolean isStFlotaVehiculo() {
		return stFlotaVehiculo;
	}
    
	@Column(name = "co_usuario_creador", updatable = false, nullable = false, length = 30)
	public String getCoUsuarioCreador() {
		return coUsuarioCreador;
	}

    @Column(name = "da_fecha_creacion", updatable = false, nullable = false)
    @Temporal(TemporalType.TIMESTAMP)
    @DateTimeFormat(style = "S-")
	public Calendar getDaFechaCreacion() {
		return daFechaCreacion;
	}

	@Column(name = "co_usuario_modificador", length = 30)
	public String getCoUsuarioModificador() {
		return coUsuarioModificador;
	}

    @Column(name = "da_fecha_modificacion")
    @Temporal(TemporalType.TIMESTAMP)
    @DateTimeFormat(style = "S-")
	public Calendar getDaFechaModificacion() {
		return daFechaModificacion;
	}	    

	public void setId(Long id) {
		this.id = id;
	}

	public void setClpdFlota(ClpdFlota clpdFlota) {
		this.clpdFlota = clpdFlota;
	}

	
	public void setClpbTarjetaEmpresa(ClpbTarjetaEmpresa clpbTarjetaEmpresa) {
		this.clpbTarjetaEmpresa = clpbTarjetaEmpresa;
	}

	public void setDePlaca(String dePlaca) {
		this.dePlaca = dePlaca;
	}

//	public void setCoTarjetaEmpresa(String coTarjetaEmpresa) {
//		this.coTarjetaEmpresa = coTarjetaEmpresa;
//	}

	public void setDaFechaInscripcion(Calendar daFechaInscripcion) {
		this.daFechaInscripcion = daFechaInscripcion;
	}

	public void setStFlotaVehiculo(boolean stFlotaVehiculo) {
		this.stFlotaVehiculo = stFlotaVehiculo;
	}

	
	@Transient
	public Long getIdTarjetaEmpresa() {
		return idTarjetaEmpresa;
	}

	public void setIdTarjetaEmpresa(Long idTarjetaEmpresa) {
		this.idTarjetaEmpresa = idTarjetaEmpresa;
	}

	@Transient
	public String getFechaInscripcion() {
		return fechaInscripcion;
	}

	public void setFechaInscripcion(String fechaInscripcion) {
		this.fechaInscripcion = fechaInscripcion;
	}
	
	
	@Transient
	public String getDeTarjetaEmpresa() {
		return deTarjetaEmpresa;
	}

	public void setDeTarjetaEmpresa(String deTarjetaEmpresa) {
		this.deTarjetaEmpresa = deTarjetaEmpresa;
	}

	public static long getSerialversionuid() {
		return serialVersionUID;
	}

	@Override
	public boolean equals(Object o) {
		// TODO Auto-generated method stub
		return false;
	}

	@Override
	public int hashCode() {
		// TODO Auto-generated method stub
		return 0;
	}

	@Override
	public String toString() {
		return "ClprFlotaVehiculo [coTarjetaEmpresa=" + //coTarjetaEmpresa
				", daFechaInscripcion=" + daFechaInscripcion + ", dePlaca="
				+ dePlaca + ", id=" + id + ", stFlotaVehiculo="
				+ stFlotaVehiculo + "]";
	}
	
	private String deObservaciones;
	private String deFlota;

	@Transient
	public String getDeObservaciones() {
		return deObservaciones;
	}

	public void setDeObservaciones(String deObservaciones) {
		this.deObservaciones = deObservaciones;
	}

	@Transient
	public String getDeFlota() {
		return deFlota;
	}

	public void setDeFlota(String deFlota) {
		this.deFlota = deFlota;
	}
	
}
